package com.iwinding.ladygg.utils;

import android.content.Context;
import android.support.annotation.StringRes;
import android.text.TextUtils;

import com.iwinding.ladygg.R;
import com.iwinding.ladygg.constant.Constant;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;

/**
 * Created by Administrator on 2016/8/9.
 */
public class StringUtil {

    /**
     * res带帽号
     *
     * @param mContext
     * @param resId
     * @param defaultStr
     * @return
     */
    public static String getColonString(Context mContext, @StringRes int resId, String... defaultStr) {
        Object[] strings = new String[defaultStr.length];
        for (int i = 0; i < defaultStr.length; i++) {
            strings[i] = getNotEmptyString(defaultStr[i]);
        }
        return mContext.getString(resId, strings);
    }


    public static String getNotEmptyString(String str) {
        return TextUtils.isEmpty(str) ? "" : str;
    }

    /**
     * 打、号
     *
     * @return
     */
    public static String getStopString(List<String> transportations) {
        if (transportations != null && transportations.size() != 0) {
            StringBuffer temp = new StringBuffer();
            for (String tempStr : transportations) {
                temp.append(tempStr).append("、");
            }
            temp.deleteCharAt(temp.length() - 1);
            return temp.toString();
        }
        return "";
    }

    public static int getInteger(String str) {
        int i = -1;
        if (TextUtils.isEmpty(str))
            return i;
        try {
            i = Integer.parseInt(str);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return i;
    }

    /**
     * 获取StringArray中的str字符串
     *
     * @param mContext
     * @param type
     * @param resArrayId
     * @return
     */
    public static String getStrOfArray(Context mContext, String type, int resArrayId) {
        if(TextUtils.isEmpty(type))
            return "";
        int intType = StringUtil.getInteger(type);
        return getStrOfArray(mContext, intType, resArrayId);
    }

    /**
     * 获取StringArray中的str字符串
     *
     * @param mContext
     * @param intType
     * @param resArrayId
     * @return
     */
    public static String getStrOfArray(Context mContext, int intType, int resArrayId) {
        String[] sealTypes = mContext.getResources().getStringArray(resArrayId);
        return intType > 0 && intType <= sealTypes.length ? sealTypes[intType - 1] : "";
    }

    /**
     * 获取yesOrNo选择
     * @param mContext
     * @param str
     * @param yes
     * @return
     */
    public static String getYesOrNo(Context mContext, String str, Object yes) {
        String value = mContext.getString(TextUtils.equals(StringUtil.getNotEmptyString(str), (String) yes) ? R.string.yes : R.string.no);
        return value;
    }
    /**
     * 获取yesOrNo选择
     * @param mContext
     * @param str
     * @param yes
     * @return
     */
    public static String getYesOrNo(Context mContext, String str, int yes) {
        int index = getInteger(str);
        String value = mContext.getString(index == yes ? R.string.yes : R.string.no);
        return value;
    }

    public static List<String> getSeparateStop(String separateStr) {
        String[] strs = separateStr.split(",");
        List<String> list = new ArrayList<>();
        Collections.addAll(list, strs);
        return list;
    }

    /**
     * 6位纯数字工号
     * @param number
     * @return
     */
    public static boolean isNumber(String number){
        Pattern numRegex = Pattern.compile("^\\d{6}$");
        boolean is = numRegex.matcher(number).matches();
        return is;
    }

    /**
     * 验证手机格式
     */
    public static boolean isMobileNO(String mobiles) {
    /*
    移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
    联通：130、131、132、152、155、156、185、186
    电信：133、153、180、189、（1349卫通）
    总结起来就是第一位必定为1，第二位必定为3或5或8，其他位置的可以为0-9
    "^((1[3,5,8][0-9])|(14[5,7])|(17[0,6,7,8]))//d{8}$"//"[1]"代表第1位为数字1，"[358]"代表第二位可以为3、5、8中的一个，"\\d{9}"代表后面是可以是0～9的数字，有9位。
    */

        Pattern telRegex_mobile = Pattern.compile(Constant.Mobile.MOBILE);
        Pattern telRegex_cm = Pattern.compile(Constant.Mobile.CM);
        Pattern telRegex_cu = Pattern.compile(Constant.Mobile.CU);
        Pattern telRegex_ct = Pattern.compile(Constant.Mobile.CT);
        if (TextUtils.isEmpty(mobiles))
            return false;
        boolean mobile = telRegex_mobile.matcher(mobiles).matches();
        boolean cm = telRegex_cm.matcher(mobiles).matches();
        boolean cu = telRegex_cu.matcher(mobiles).matches();
        boolean ct = telRegex_ct.matcher(mobiles).matches();

        if(mobile ||
                cm ||
                cu ||
                ct ){
            return true;
        }
        return false;
    }



}
